home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / rmi / MarshalledObject.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.6 KB  |  77 lines

  1. package java.rmi;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import java.io.ByteArrayOutputStream;
  5. import java.io.IOException;
  6. import java.io.Serializable;
  7.  
  8. public final class MarshalledObject<T> implements Serializable {
  9.    private byte[] objBytes = null;
  10.    private byte[] locBytes = null;
  11.    private int hash;
  12.    private static final long serialVersionUID = 8988374069173025854L;
  13.  
  14.    public MarshalledObject(T var1) throws IOException {
  15.       if (var1 == null) {
  16.          this.hash = 13;
  17.       } else {
  18.          ByteArrayOutputStream var2 = new ByteArrayOutputStream();
  19.          ByteArrayOutputStream var3 = new ByteArrayOutputStream();
  20.          MarshalledObjectOutputStream var4 = new MarshalledObjectOutputStream(var2, var3);
  21.          var4.writeObject(var1);
  22.          var4.flush();
  23.          this.objBytes = var2.toByteArray();
  24.          this.locBytes = var4.hadAnnotations() ? var3.toByteArray() : null;
  25.          int var5 = 0;
  26.  
  27.          for(int var6 = 0; var6 < this.objBytes.length; ++var6) {
  28.             var5 = 31 * var5 + this.objBytes[var6];
  29.          }
  30.  
  31.          this.hash = var5;
  32.       }
  33.    }
  34.  
  35.    public T get() throws IOException, ClassNotFoundException {
  36.       if (this.objBytes == null) {
  37.          return null;
  38.       } else {
  39.          ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);
  40.          ByteArrayInputStream var2 = this.locBytes == null ? null : new ByteArrayInputStream(this.locBytes);
  41.          MarshalledObjectInputStream var3 = new MarshalledObjectInputStream(var1, var2);
  42.          Object var4 = var3.readObject();
  43.          var3.close();
  44.          return (T)var4;
  45.       }
  46.    }
  47.  
  48.    public int hashCode() {
  49.       return this.hash;
  50.    }
  51.  
  52.    public boolean equals(Object var1) {
  53.       if (var1 == this) {
  54.          return true;
  55.       } else if (var1 != null && var1 instanceof MarshalledObject) {
  56.          MarshalledObject var2 = (MarshalledObject)var1;
  57.          if (this.objBytes != null && var2.objBytes != null) {
  58.             if (this.objBytes.length != var2.objBytes.length) {
  59.                return false;
  60.             } else {
  61.                for(int var3 = 0; var3 < this.objBytes.length; ++var3) {
  62.                   if (this.objBytes[var3] != var2.objBytes[var3]) {
  63.                      return false;
  64.                   }
  65.                }
  66.  
  67.                return true;
  68.             }
  69.          } else {
  70.             return this.objBytes == var2.objBytes;
  71.          }
  72.       } else {
  73.          return false;
  74.       }
  75.    }
  76. }
  77.